其他
软件应用 | 教你用Stata做描述性统计表
The following article is from Stata and Python数据分析 Author 爬虫俱乐部
本文转载自公众号Stata and Python数据分析
导读
导入数据
clear all
sysuse auto,clear
gen group = 0
replace group = 1 if foreign == 1
描述性统计表
By (varname)指定对每个唯一的varname值分别显示统计信息;Varname可以是数字或字符串。例如tabstat by(group)表示group == 0的平均值,group == 1的平均值,总的平均值。 Format和Format (%fmt)指定如何格式化统计数据。默认是使用%9.0g格式。如%9.2g表示固定列宽为9,小数点后保留两位。 Save指定在r()中返回汇总统计信息。全样本统计信息以矩阵r(StatTotal)的形式返回。分类的统计信息以矩阵r(Stat1),r(Stat2),...的形式返回。 Statistics (statname[…])指定要显示的统计信息;默认是平均值,括号中可以指定的数据统计如下:
选项名 | 说明 |
---|---|
sd | 标准差 |
mean | 平均值 |
semean | 标准误差平均值 |
median | 中位数 |
count /n | 非缺失的观测值个数 |
sum | 求和 |
range | 极差(范围误差、全距) |
min | 最小值 |
max | 最大值 |
cv | 变异系数 |
skewness | 偏度 |
kurtosis | 峰度 |
iqr | 四分位距(四分差) |
p1 | 第1百分位数 |
p5 | 第5百分位数 |
p10 | 第10百分位数 |
p25 | 第25百分位数 |
p50 | 第50百分位 |
p75 | 第75百分位数 |
p99 | 第99百分位数 |
variance | 方差 |
tabstat price wei len mpg rep78,by(group) ///
stats(n mean sd p50) c(s) f(%6.2f) save
return list
矩阵合并
matrix A = r(Stat1)
matrix B = r(Stat2)
matrix C = r(StatTotal)
matlist A
matlist B
matlist C
mat A = A'
mat B = B'
mat C = C'
matlist A
mat ALL =[C,A,B]
matlist ALL
用putdocx输出矩阵
选项width()用于指定表格宽度;
选项layout()用来调整表格的列宽,包括fixed、autofitwindow、autofitcontents三种样式,fixed表示所有列宽相同,autofitwindow表示根据窗口大小自动调整列宽,autofitcontents表示根据表格内容自动调整列宽,默认根据窗口大小自动调整列宽(即autofitwindow);
选项halign()用来设置表格的水平对齐方式,可以选择left(左对齐)、right(右对齐)或center(居中对齐),默认为左对齐(即left)。
putdocx clear
putdocx begin, pagesize(A4) landscape
putdocx table t1 = matrix(ALL), nformat(%8.2f) rownames colnames halign(center) layout(autofitcontents)
tablename(i, j)表示表格的第i行,第j列,例如tablename(1, .)表示第一行,tablename(1, 1)表示第一行第一列,tablename(., .)表示全部表格。 rowspan()表示垂直合并单元格; colsapan()表示横向合并单元格; addrows(# [, before|after])在指定位置前或者后添加#行; addcols(# [, before|after])在指定位置前或者后添加#列; drop表示删除指定的行或列; halign()设置水平对齐方式; valign()设置垂直对齐方式; font()设置字体字号和颜色。
putdocx table t1(1, .),addrows(2,before)
putdocx table t1(1, 1) = ("描述性统计"),colspan(13)
putdocx table t1(2, 2) = ("全样本"),colspan(4)
putdocx table t1(2, 3) = ("控制组"),colspan(4)
putdocx table t1(2, 4) = ("实验组"),colspan(4)
putdocx table t1(3, 1) = ("变量名称")
putdocx table t1(., .),halign(center) font("宋体")
putdocx save table.docx,replace
shellout table.docx
clear all
sysuse auto,clear
gen group = 0
replace group = 1 if foreign == 1
tabstat price wei len mpg rep78,by(group) ///
stats(n mean sd p50) c(s) f(%6.2f) save
return list
matrix A = r(Stat1)
matrix B = r(Stat2)
matrix C = r(StatTotal)
matlist A
matlist B
matlist C
mat A = A'
mat B = B'
mat C = C'
matlist A
mat ALL =[C,A,B]
matlist ALL
putdocx clear
putdocx begin, pagesize(A4) landscape
putdocx table t1 = matrix(ALL), nformat(%8.2f) rownames colnames halign(center) layout(autofitcontents)
putdocx table t1(1,.),addrows(2,before)
putdocx table t1(1,1) = ("描述性统计"),colspan(13)
putdocx table t1(2,2) = ("全样本"),colspan(4)
putdocx table t1(2,3) = ("控制组"),colspan(4)
putdocx table t1(2,4) = ("实验组"),colspan(4)
putdocx table t1(3,1) = ("变量名称")
putdocx table t1(., .),halign(center) font("宋体")
putdocx save table.docx,replace
星标⭐我们不迷路!想要文章及时到,文末“在看”少不了!
点击搜索你感兴趣的内容吧
往期推荐
数据Seminar
这里是大数据、分析技术与学术研究的三叉路口
推荐 | 青酱
欢迎扫描👇二维码添加关注